从事偏向底层开发工作2年多,最拿手的是C语言;曾因项目需要,在Visual Studio开发环境下使用C++开发过一个小的工具软件,所以面向对象的思想和一些基本概念都知道;
为了平滑地过渡到IOS开发,也想多掌握一些专用英文词汇,先从《Objective C Programming》这本书开始Objective-C的奇妙之旅。
Chapter 1 You and This Book
生词1
2
3Instruction-指令 Inscrutable-不可思议的 Tediously-冗长地 Long-winded 冗长的
wear-wore-worn illustrate-举例说明 typo-错字 physically-身体上地,完全地
essential-本质的,必不可少的 landscape-风景,景况 euphemism-委婉语
- 这本书是写给想做IOS或者Mac OS X开发,却没有任何编程基础的(虽然我有,但是很多C的内容权当复习和提高(^__^));
- Unix大部分是C语言写的,Objective-C是在C基础上发展来的,添加了面向对象特性,使用OC开发IOS或者OSX 应用程序;
- 作者一定希望读者亲手练习课后程序,You won’t really understand the book unless you do them.(Agree);
还提供了一个大家一起交流的论坛:http://forums.bignerdranch.com/(刚才看了下,人气不是很高。。。)
Chapter 2 Your First Program
生词1
2
3
4
5
6
7
8
9
10Perchase-采购 Conduct-进行,带领,实施 terminology-术语 daemon-守护进程
Distraction-分心 particulars-细节 Reveal-揭示 a set of-一套
distinguish-区分 slashes-斜线 extensive-广泛的 semicolon-分号
interpret-解释,口译 brace-花括号 handy-方便的 instinctive-本能的
clue-线索 colon-冒号 suspicious-可疑的 disheartened-心灰意冷的
verbose-罗嗦的 quote-引用 terrific-非常的,极好的,可怕的
envy-嫉妒 metaphor-比喻 relative-相对的 interchangeably-可交换的
interact-交互 baffled-困惑 mental-精神 scaffolding-脚手架,支架,框架
bewildred-困惑 steer-引导 nuggets-有趣的信息 incredibly-令人难以置信的
flummoxed-困惑 cease-停止
- 教你怎么用XCode建立一个工程然后build & Run,穿插讲一些编程常识。
(毕竟有基础,都懂哈,生词有点多啊,但是喜欢这种感觉,喜欢作者的说话方式,引用他的一句话It is a little like being six again)20150909-Page19
Chapter 3 Variables and Types
生词1
2Chef-大厨 Logarithm-对数 Decimal-小数的 Mantissa尾数 Exponent-指数 Precision-精度
Asterisk-星号 Latitude-纬度 longitude-经度 Astonishing-惊人的 Assign-赋值,分配
1.介绍了变量和数据类型(虽然很基础,但仍旧学到了正宗的英文表达方式)
Chapter 4 if/else
生词1
2
3
4Circumstantce-情况,环境 Resume-简历,继续 Conditional-有条件的,嘉定 Exclusive-独有的 parenthese-圆括号
alias-别名 Appropriate-适当的 Indention-缩进 Clause-语句,条款 ternary-三元的
scenario-情节,方案 Candidate-候选者 Strike-打击 Odd-奇数,奇怪的失误 Suspect-猜想
Embrace-拥抱 Concise-简洁的
1.介绍了if/else语句,For Curious 里介绍了条件赋值语句?(–!果然是给毫无基础的人,前面几张就当熟悉计算机英语了)
Chapter 5 Functions
生词1
2
3
4
5
6Chunk-大块 Retrieve检索 Spiffy-出色的 Exclamation-惊叹,感叹 Identical-完全相同的
Commas-逗号 corresponding-相应的,一致的 Reusability-重用性 Reusability-短语
Partition-分割 Empower-授权,使能 Scribble-乱写 Discard-丢弃,废弃 Recursion-递归
Notoriously-众所周知的,臭名昭著的 Concrete-具体的,混凝土 Indicator-指示符
Precede-在之前 Celsius-摄氏度 Fahrenheit-华氏度 Slick-平滑,聪明,灵活 Contradictory-对立事物
dozen-打,十几个 Whatsoever-无论什么 Interior-内部的 Escape sequence转意序列
- 函数执行所需要的参数都保存在栈中,书里叫做这个函数的Frame,正在执行的函数的Frame在Stack的top位,执行完毕之后Distroy,然后回到调用它的函数里,
同时stack里的top也就变成了调用他的函数的Frame,所以Stack里的top位置总是存放正在执行的Function的Frame; - 讲了很好玩的递归应用:“99 Bottles of Beer”,一开始我看蒙了,从99bear到0bear都可以理解,函数不断调用自己99次,但是后来的从0又到99bear是怎么
来的呢?好吧我居然一时忘记了函数执行完毕之后要返回调用它的函数,同时frame从stack里pop;也就是从0bear再到99bear的这个过程了;第一次发现读英文
书居然比之前上学时候学的中文课本更加清晰易懂~ - 介绍了使用XCode仿真观察内存栈的方法;有趣的main函数return 0为什么表示执行成功?在逻辑判断里面0不是表示False么?想像函数返回0表示没有err就好了;
关于static和全局变量,这个点书里面讲的不全,只是告诉了用static定义一个全局变量,则其他文件中不能引用,我根据经验总结下:
static关键字是将变量声明为 静态存储方式,也就是不在函数stack里面,不会在函数执行完毕之后销毁,
1>.如果将static放在一个函数内部的局部变量之前,那么这个变量可以在整个程序执行周期内不销毁,一直存储使用;比如我有如下函数:1
2
3
4
5
6int Stepup(void)
{
static i = 0;
i++;
return i;
}那么每次调用这个函数我得到的返回值会是:0,1,2,3,4。。。而不会一直都是1,因为变量i从来没被销毁,其值一直保存并递增;
2>.如果将static放在一个全局变量之前,那么这个变量将仅仅只能在这个源文件中使用,而不能被其他源文件引用,即使使用extern;